Logging হল এমন একটি প্রক্রিয়া যার মাধ্যমে অ্যাপ্লিকেশনের কার্যকলাপ বা ইভেন্টগুলো রেকর্ড করা হয়। এটি ডেভেলপারদের সমস্যা চিহ্নিত করতে, অ্যাপ্লিকেশন পারফরম্যান্স মনিটর করতে এবং সিস্টেমের স্থিতি ট্র্যাক করতে সহায়তা করে। ASP.Net Core তে বিল্ট-ইন লগিং সিস্টেম রয়েছে যা সহজেই কনফিগার এবং ব্যবহার করা যায়। এই সিস্টেমটি আপনার অ্যাপ্লিকেশনের কার্যকলাপ লিপিবদ্ধ করতে সক্ষম, যেমন ইরর, তথ্য, ডিবাগ, এবং ওয়ার্নিং লেভেলের লগ মেসেজ।
ASP.Net Core তে লগিং একটি অত্যন্ত গুরুত্বপূর্ণ অংশ, কারণ এটি অ্যাপ্লিকেশনটি পরিচালনার সময় প্রয়োজনে ট্রাবলশুটিং করতে এবং সিস্টেমের সুস্থতা নিশ্চিত করতে সহায়তা করে।
ASP.Net Core তে লগিং প্রক্রিয়াটি ইন্টারফেস এবং কনফিগারেশন এর মাধ্যমে কাজ করে। এটি বিভিন্ন প্রকারের লগ সোপোর্ট করে, যেমন:
ASP.Net Core তে লগিং ব্যবস্থাপনা করার জন্য একাধিক ILogger ইন্টারফেস ব্যবহার করা হয়।
ASP.Net Core তে লগিং করার জন্য ILogger<T>
ইন্টারফেস ব্যবহার করা হয়, যেখানে T
হলো সেই ক্লাস যা লগিং করবে। এই ইন্টারফেসে বিভিন্ন মেথড রয়েছে, যেমন LogInformation()
, LogWarning()
, LogError()
, ইত্যাদি।
ILogger ব্যবহার করার উদাহরণ:
public class ProductController : Controller
{
private readonly ILogger<ProductController> _logger;
public ProductController(ILogger<ProductController> logger)
{
_logger = logger;
}
public IActionResult Index()
{
_logger.LogInformation("ProductController Index action executed");
return View();
}
public IActionResult Create()
{
try
{
// কিছু লজিক
_logger.LogInformation("Creating a new product");
return View();
}
catch (Exception ex)
{
_logger.LogError($"Error occurred while creating a product: {ex.Message}");
return View("Error");
}
}
}
উপরের উদাহরণে, ProductController ক্লাসের মধ্যে ILogger<ProductController>
ব্যবহার করা হয়েছে। এখানে LogInformation()
এবং LogError()
মেথড ব্যবহার করে লগ মেসেজ রেকর্ড করা হয়েছে।
ASP.Net Core তে লগিংয়ের জন্য সাধারণত পাঁচটি স্তর (Log Level) ব্যবহৃত হয়:
ASP.Net Core ডিফল্টভাবে Information
লেভেলের লগিং ব্যবহার করে, তবে আপনি কনফিগারেশন ফাইলে লগিং লেভেল কাস্টমাইজ করতে পারেন।
ASP.Net Core অ্যাপ্লিকেশনটির লগিং কনফিগারেশন appsettings.json
ফাইলে করা যেতে পারে। এখানে আপনি লগিং লেভেল, লগ প্রোভাইডার এবং অন্যান্য কনফিগারেশন সেট করতে পারবেন।
appsettings.json কনফিগারেশন উদাহরণ:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
}
}
এই কনফিগারেশনে, ডিফল্ট লগ লেভেল Information
রাখা হয়েছে এবং Microsoft
নেমস্পেসের জন্য Warning
লেভেল সেট করা হয়েছে।
ASP.Net Core তে NLog, Serilog এবং log4net এর মতো এক্সটার্নাল লগিং ফ্রেমওয়ার্কও ইন্টিগ্রেট করা যায়। এগুলো আরও উন্নত লগিং ফিচার এবং কাস্টমাইজেশন সাপোর্ট করে।
Serilog কনফিগারেশন উদাহরণ:
Program.cs
ফাইলে Serilog কনফিগারেশন করুন।public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureLogging((context, logging) =>
{
logging.ClearProviders();
logging.AddSerilog();
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
এই কনফিগারেশনের মাধ্যমে, Serilog ব্যবহার করে অ্যাপ্লিকেশনের লগ রেকর্ড করা হবে।
ASP.Net Core তে লগিং সিস্টেম একটি শক্তিশালী এবং কাস্টমাইজেবল সিস্টেম যা ডেভেলপারদের অ্যাপ্লিকেশনের কার্যকলাপ মনিটর করতে সহায়তা করে। এটি বিভিন্ন লগ লেভেল এবং লগ প্রোভাইডার সাপোর্ট করে, যার মাধ্যমে বিভিন্ন ধরণের লগ মেসেজ সংগ্রহ করা যায়। লগিং অ্যাপ্লিকেশনের স্থিতি ও পারফরম্যান্স বিশ্লেষণে অত্যন্ত গুরুত্বপূর্ণ ভূমিকা পালন করে এবং ত্রুটি চিহ্নিতকরণে সহায়তা করে।
common.read_more